<?php

namespace app\popo\dto;

use app\popo\vo\Required;
use think\helper\Arr;

/**
 * 用户下单DTO
 */
class OrdersSubmitDTO extends BaseDto
{
    #[Required]
    public int $addressBookId;
    
    #[Required]
    public int $payMethod;
    
    public string $remark = '';
    
    public string $estimatedDeliveryTime = '';
    
    public int $deliveryStatus = 1; // 1立即送出 0选择具体时间
    
    public int $tablewareNumber = 1;

    public int $tablewareStatus = 1; // 1按餐量提供 0选择具体数量
    
    public float $packAmount = 0;
    public float $amount = 0;

    public function getAddressBookId(): int
    {
        return $this->addressBookId;
    }

    public function setAddressBookId(int $addressBookId): void
    {
        $this->addressBookId = $addressBookId;
    }

    public function getPayMethod(): int
    {
        return $this->payMethod;
    }

    public function setPayMethod(int $payMethod): void
    {
        $this->payMethod = $payMethod;
    }

    public function getRemark(): string
    {
        return $this->remark;
    }

    public function setRemark(string $remark): void
    {
        $this->remark = $remark;
    }

    public function getEstimatedDeliveryTime(): string
    {
        return $this->estimatedDeliveryTime;
    }

    public function setEstimatedDeliveryTime(string $estimatedDeliveryTime): void
    {
        $this->estimatedDeliveryTime = $estimatedDeliveryTime;
    }

    public function getDeliveryStatus(): int
    {
        return $this->deliveryStatus;
    }

    public function setDeliveryStatus(int $deliveryStatus): void
    {
        $this->deliveryStatus = $deliveryStatus;
    }

    public function getTablewareNumber(): int
    {
        return $this->tablewareNumber;
    }

    public function setTablewareNumber(int $tablewareNumber): void
    {
        $this->tablewareNumber = $tablewareNumber;
    }

    public function getTablewareStatus(): int
    {
        return $this->tablewareStatus;
    }

    public function setTablewareStatus(int $tablewareStatus): void
    {
        $this->tablewareStatus = $tablewareStatus;
    }

    public function getPackAmount(): float
    {
        return $this->packAmount;
    }

    public function setPackAmount(float $packAmount): void
    {
        $this->packAmount = $packAmount;
    }

    public function setAmount(float $amount): void
    {
        $this->amount = $amount;
    }

    public function getAmount(): float|int
    {
        return $this->amount;
    }

    public function setOrderNumber(string $orderNumber): void
    {
        $this->orderNumber = $orderNumber;
    }

    public function getOrderNumber(): string
    {
        return $this->orderNumber;
    }
}